<?php
namespace app\admin\controller;
use think\Controller;
use think\Db;
use think\Request;

class Login extends Controller
{
    public function index()
    {
        if(request()->isPost()){
            $data = input('post.');
            //查询条件
            $map = [
                "user_name" => $data['username'],
            ];
            //检测用户存不存在
            $user = Db::table('ad_admin')->where($map)->find();
            //判断用户存不存在
            if(!$user['user_name']){
                $this->error('该用户不存在');
            }

            //判断密码是否错误
            if($user['user_pass'] != MD5(MD5($data['password']))){
                $this->error('密码错误');
            }

            $se_name = $user['user_name'];

            //登录成功 把用户信息存入session
            session('se_name',$se_name,'admin');

            //超级管理员拥有所有权限 如果不是超级管理员 则进行相对应的权限限定
            if($user['role_id'] == '*'){
                //如果是超级管理员 直接把权限存入session
                session('url', '*', 'admin');
            }else{
                //把用户的权限id拼接成sql语句到权限表去读取权限
                $map = [
                    'id' => array('in',$user['role_id']),
                ];

                //到权限表读取权限
                $pri_info = Db::table('ad_node')->where($map)->select();

                $_pris=array();
                //把获取到的权限变成数组形式
                foreach($pri_info as $k => $v){
                    $_pris[] = $v['url'];
                }
                session('url',$_pris, 'admin');
            }


            return $this->success('登录成功!',url('Index/index'));

        }else{
            //如果用户账号存在 直接登录
            $user_account = session('se_name', '', 'admin');
            //判断是否存在 如果存在 直接跳转页面
            if($user_account){
                $this->redirect('Index/index');
            }
        }
        return $this->fetch();
    }

    public function loginout()
    {
        //销毁session
        session(null,'admin');
        //跳转链接
        $this->redirect('Login/index');
    }
}